13 - Rechnerarchitektur [ID:10867]
50 von 639 angezeigt

Also momentan stehen noch keine Folien drin für dieses Semester, sondern der Chef stellt sie dann,

oder gibt sie mir diese Woche, ich stelle sie dann rein, aber wir verwenden einfach die vom letzten

Jahr, sind dieselben, einfach nur die Nummerierung ist anders. Ja, also heute geht es um parallel

Rechenarchitekturen und das meiste davon wird euch schon bekannt vorkommen, weil habt ihr ja

schon die ganze Zeit gehabt, auch vor allem in der Rechnerübung und wir gehen trotzdem noch

das Ganze durch, um sich das noch ein bisschen in Erinnerung zu holen, weil es einige, die das

schon vergessen haben, was wir gemacht haben. Wir fangen quasi mit pipeline datenparallel an und

da geht es auch schon los, irgendwo weiter unten. Die Definition ist eigentlich jedem klar, oder,

was ein parallel Rechner ist. Michael, weißt du was parallel Rechner ist? Ohne abzulehnen,

einfach mit eigenen Worten. Name, Dax und parallel? Richtig, also egal was für eine Form das ist,

es kann eben eine funktionale Pipeline sein, wo die Instruktionen in verschiedenen Stufen parallel

abgearbeitet werden, oder aber so in Rechenwerke, die parallel arbeiten, oder eben richtige Cores,

die parallel zu einander arbeiten, oder komplette Rechner, eben Cluster Computing, falls einige von

euch schon sowas mal gemacht haben, ist auch ein spannendes Thema, oder eben auch Grids, Cloud und

was man heute nicht alles so hat. Genau, blablabla, eingebettete Systeme, da gibt es auch welche.

Kommt euch eins so in den Sinn, spontan? Es ist ja nicht richtig eingebildet, man sieht ja die

Devices und die FPGAs kann man auch noch programmieren, nachdem man seine Architektur

darauf gebügelt hat. Mein Lieblingsbeispiel ist Kaffeemaschine oder Auto, richtig, weil man muss

ja mehrere Ports überwachen, da gibt es für jeden Port eventuell einen eigenen Baustein und die

arbeiten alle gleichzeitig. Im Auto sind das halt zum Beispiel irgendwelche ASICs oder Mikrocontroller,

der eine ist für die Motoransteuerung zuständig, der andere ist für BS, der andere ist für ESP,

der andere ist noch für was und die arbeiten alle parallel, eingebettetes Parallelsystem.

Superskalare Position, das ist das mit dem Pipeline, wenn wir auch noch mehrere Pipelines haben,

quasi mehrere funktionale Rechenwerke, zum Beispiel für Floating-Point-Einheiten,

für Integer und so weiter. VLIF, was ist VLIF gewesen? Schon vergessen?

Wenn ich mehrere gleiche Recheneinheiten nebeneinander habe und durch spezielle Instruktionen die parallel gleichzeitig rechnen lassen kann.

Wodurch wird Parallelität generiert? Ist das die Hardware oder die Software?

Die Software, die die speziellen Befehle nutzt, wo mehrere Rechnungen gleichzeitig ausführen.

Genau, vollkommen richtig. Der Compiler muss quasi den Code analysieren und Befehle zusammenfassen,

damit sie parallel ausgeführt werden können. Mehrfältige Prozession ist klar, SMT, Hyper-Frading,

sonst was solltet ihr eigentlich können. Multi-Kern auch und btc-parallelverarbeitung.

Okay, das ist eigentlich auch klar, wenn wir eine Grafikkarte haben, die arbeitet parallel zu CPU, das ist auch so was.

Michel? Nicht so?

Ist denn da der Multi-Frader eigentlich wirklich dazu?

Ja, weil du hast ja, in dem SMT-Prinzip hast du wirklich mehrere Register-Sätze

und die werden parallel gleichzeitig genutzt und jeder Thread schickt Instruktionen zum Scheduler hin

und der Scheduler guckt hin, wie kann er sie quasi zu den Funktionalen Einheiten weiterleiten.

Und es kann wirklich dann so sein, dass die zum Beispiel die Integer-Einheit von Thread 0 irgendwas rechnet

und die Floating-Point-Einheit von Thread 1.

Die haben natürlich keinen vollständigen Kurs, das ist dann das da.

Aber du hast trotzdem parallel Verarbeitung, weil sie unterschiedliche Instruktionen gleichzeitig haben.

War das dann wirklich das Integer-Wert, sagen wir mal, wenn man an Thread A am Arbeiten während die Floating-Säunen tötet?

Ja, genau. Die schicken einfach ihre Instruktionen, also der Scheduler nimmt sie sich

und dann tut er gucken, wo kann er sich ausführen, nimmt eine freie Einheit und dann einfach nacheinander.

Damit tut man quasi, bei einem Thread hast du nicht so eine starke Auslassung von deinen allen Rechenwerken.

Wenn du aber quasi dieses SMC-Prinzip nimmst, dann lassest du sie stärker aus.

Natürlich muss dein Programm dann so sein, dass der eine Thread etwas anderes macht als der zweite.

Das wäre am besten.

Ansonsten hast du natürlich das By-Planning, was dir ein bisschen den Durchsatz steigert,

aber wenn sie komplett unabhängige Instruktionen machen, dann ist es noch besser.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:03:07 Min

Aufnahmedatum

2013-01-30

Hochgeladen am

2019-04-30 06:59:03

Sprache

de-DE

Die Vorlesung baut auf die in den Grundlagen der Rechnerarchitektur und -organisation vermittelten Inhalte auf und setzt diese mit weiterführenden Themen fort. Es werden zunächst grundlegende fortgeschrittene Techniken bei Pipelineverarbeitung und Cachezugriffen in modernen Prozessoren und Parallelrechnern behandelt. Ferner wird die Architektur von Spezialprozessoren, z.B. DSPs und Embedded Prozessoren behandelt. Es wird aufgezeigt, wie diese Techniken in konkreten Architekturen (Intel Nehalem, GPGPU, Cell BE, TMS320 DSP, Embedded Prozessor ZPU) verwendet werden. Zur Vorlesung werden eine Tafel- und eine Rechnerübung angeboten, durch deren erfolgreiche Beteiligung abgestuft mit der Vorlesung 5 bzw. 7,5 ECTS erworben werden können. In den Tafelübungen werden die in der Vorlesung vermittelten Techniken durch zu lösende Aufgaben vertieft. In der Rechnerübung soll u.a. ein einfacher Vielkern-Prozessor auf Basis des ZPU-Prozessors mit Simulationswerkzeugen aufgebaut werden. Im Einzelnen werden folgende Themen behandelt:
  • Organisationsaspekte von CISC und RISC-Prozessoren

  • Behandlung von Hazards in Pipelines

  • Fortgeschrittene Techniken der dynamischen Sprungvorhersage

  • Fortgeschritten Cachetechniken, Cache-Kohärenz

  • Ausnutzen von Cacheeffekten

  • Architekturen von Digitalen Signalprozessoren

  • Architekturen homogener und heterogener Multikern-Prozessoren (Intel Corei7, Nvidia GPUs, Cell BE)

  • Architektur von Parallelrechnern (Clusterrechner, Superrechner)

  • Effiziente Hardware-nahe Programmierung von Mulitkern-Prozessoren (OpenMP, SSE, CUDA, OpenCL)

  • Leistungsmodellierung und -analyse von Multikern-Prozessoren (Roofline-Modell)

Empfohlene Literatur
  • Patterson/Hennessy: Computer Organization und Design
  • Hennessy/Patterson: Computer Architecture - A Quantitative Approach

  • Stallings: Computer Organization and Architecture

  • Märtin: Rechnerarchitekturen

Einbetten
Wordpress FAU Plugin
iFrame
Teilen